package com.ztgf.shopping.models.dto.shop;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ztgf.common.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 店铺表DTO
 *
 * @author zhanghualang
 * @Date 2020-05-28 14:35:39
 */
@Data
@TableName("shop_info")
@ApiModel(value = "店铺表对象", description = "店铺表对象")
public class ShopInfoDTO extends BaseDTO implements Serializable {
    @ApiModelProperty(value = "乐观锁")
    private Integer revision;
    @ApiModelProperty(value = "创建人")
    private Long createUserId;
    @ApiModelProperty(value = "更新人")
    private Long updateUserId;
    @ApiModelProperty(value = "用户ID")
    private Long userId;
    @ApiModelProperty(value = "公司名称")
    private String name;
    @ApiModelProperty(value = "店铺logo")
    private String logo;
    @ApiModelProperty(value = "二级域名")
    private String domain;
    @ApiModelProperty(value = "店铺二维码")
    private String qrCode;
    @ApiModelProperty(value = "店铺简介")
    private String notes;
    @ApiModelProperty(value = "所在地区")
    private String areaId;
    @ApiModelProperty(value = "地址")
    private String address;
    @ApiModelProperty(value = "保证金")
    private BigDecimal earnestMoney;
    @ApiModelProperty(value = "买家状态 0 未冻结，1冻结")
    private Integer buyerStatus;
    @ApiModelProperty(value = "开店审核状态 0创建、1审核通过、2审核打回、3，审核不通过。4重新提交。5.未提交")
    private Integer sellerStatus;
    @ApiModelProperty(value = "入住协议签订状态 0未签订，1已签订，2补充协议 defaultValue 0")
    private Integer checkAgreementStatus;

    @ApiModelProperty(value = "保证金状态 0未缴纳，1已缴纳，2保证金不足 ,3退还 defaultValue 0")
    private Integer marginStatus;

    @ApiModelProperty(value = "年费状态 0未缴纳，1已缴纳 defaultValue 0")
    private Integer annualFeeStatus;

    @ApiModelProperty(value = "冻结状态 0未冻结，1冻结 2关店 defaultValue 0")
    private Integer frozenStatus;

    @ApiModelProperty(value = "管理员冻结状态 0未冻结，1冻结 2关店 defaultValue 0")
    private Integer adminFrozenStatus;

    @ApiModelProperty(value = "店铺类型 0专营店、1专卖店、2旗舰店、3自营店")
    private Integer type;
    @ApiModelProperty(value = "店铺类别 0买家，1卖家")
    private Integer merchantType;
    @ApiModelProperty(value = "积分")
    private Integer integral;
    @ApiModelProperty(value = "等级")
    private Integer level;
    @ApiModelProperty(value = "店铺名称")
    private String shopName;
    @ApiModelProperty(value = "店铺本名")
    private String shopRealName;
    @ApiModelProperty(value = "店铺简称")
    private String shopAbbreviation;
    @ApiModelProperty(value = "模板ID")
    private Long templetId;
    @ApiModelProperty(value = "买家级别 0普通买家，1高级买家 默认0")
    private Integer buyerRank;
    @ApiModelProperty(value = "邀请码")
    private String invitationCode;
    @ApiModelProperty(value = "我的邀请码")
    private String myInvitationCode;
    @ApiModelProperty(value = "法人")
    private String legalPerson;
    @ApiModelProperty(value = "法人身份证号")
    private String idCard;
    @ApiModelProperty(value = "法人证件类型 A身份证，E护照，F港澳通行证，K台湾通行证，L其他")
    private String idCardType;
    @ApiModelProperty(value = "统一信用代码")
    private String creditCode;
    @ApiModelProperty(value = "亮点")
    private String highlights;
    @ApiModelProperty(value = "详情")
    private String details;
    @ApiModelProperty(value = "首字母缩写")
    private String initials;
    @ApiModelProperty(value = "中金开户状态 0未开户，1已开户。默认0")
    private Integer ciccStatus;
    @ApiModelProperty(value = "中金资金账号")
    private String zjMoneyNo;
    @ApiModelProperty(value = "中金电子账号归属支行名称")
    private String zjBankName;
    @ApiModelProperty(value = "支付手机号")
    private String payMobile;
    @ApiModelProperty(value = "支付是否需要手机验证 0需要，1不需要.默认0")
    private Integer payVerification;
    @ApiModelProperty(value = "关店流程状态 0未开启，1检测中（检测订单）.2关店中（关店倒计时中）.3已关店")
    private Integer closeStatus;
    @ApiModelProperty(value = "店铺支付类型 0 担保类交易 1 先款交易")
    private Integer shopPayType;

    @ApiModelProperty("关店时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("close_time")
    protected Date closeTime;

    @ApiModelProperty("店铺类型变更成功时间")
    private Date changeTime;

    @ApiModelProperty(value = "店铺变更状态:0未提交,1审核通过,2审核不通过,3审核打回,4审核中,5重新提交")
    private Integer changeStatus;


    @ApiModelProperty(value = "申请平台砍价服务费")
    private BigDecimal purchaseFeeMoney;
    @ApiModelProperty(value = "平台砍价服务费根据商品扣除")
    private BigDecimal purchaseFeeMoneyScale;
    @ApiModelProperty(value = "询价商品佣金")
    private BigDecimal purchaseDividendScale;
    @ApiModelProperty(value = "询价商品增长率")
    private BigDecimal purchaseDividendScaleRate;
    @ApiModelProperty(value = "申请平台砍价金额免费次数")
    private Integer purchaseFeeMoneyFreeTimes;
}